/*
 * DatosMensaje.h
 *
 *  Created on: 31/01/2010
 *      Author: San Martín, Matías I.
 */

#ifndef DATOSMENSAJE_H_
#define DATOSMENSAJE_H_

#include <string>

#include "MensajesCommonTypes.h"

#include "../../../Framework/IO/SerializableToCharArray.h"

namespace aplicacion {

/**
 * Define la interfaz que debe cumplir una clase que representa el contenido
 * de un mensaje (especifico).
 *
 * Se debe implementar esta interfaz por cada tipo de mensaje que existe.
 *
 * Por el momento no hace mas que ser un punto de inclusion de interfaces y
 * la raiz de la jerarquía.
 */
class DatosMensaje : public framework::io::SerializableToCharArray {

public:
	virtual std::string toString() const = 0;

	virtual t_tipoMensaje getTipo() = 0;

	/**
	 * @see middleware::SerializableToArray#saveToArray(int)
	 */
	virtual size_t saveToArray (uint8_t* arr) const { return 0; }

	/**
	 * @see middleware::SerializableToArray#loadFromArray(int)
	 */
	virtual size_t loadFromArray (const uint8_t* arr) { return 0; }
};

} //namespace aplicacion

#endif /* DATOSMENSAJE_H_ */
